// 处理axios发送请求的、
import Vue from 'vue'
import axios from 'axios'
import router from '../router'
import { Toast } from 'vant'
Vue.prototype.$axios = axios

const URL = 'http://localhost:3000'
// axios.defaults.baseURL = URL
// Vue.prototype.$base = URL
//   /abc/login   ----基准路径 +发出去请求路径（相对路径）
// 这里如果写成/abc 就不会跨域了
axios.defaults.baseURL = '/api'
Vue.prototype.$base = URL
axios.interceptors.request.use(function (config) {
  // config指的是请求的配置信息  ---并且一定要返回出去
  // console.log('拦截到了请求', config)
  const token = localStorage.getItem('token')
  if (token) {
    config.headers.Authorization = token
  }
  // 最终返回的config 一定带有token 了
  return config
})
axios.interceptors.response.use(function (response) {
  // console.log('拦截响应到了', response)
  const { statusCode, message } = response.data
  if (statusCode === 401 && message === '用户信息验证失败') {
    // console.log('token获取失败')
    router.push('/login')
    localStorage.removeItem('token')
    localStorage.removeItem('userId')
    Toast.fail('登录信息失效')
  }
  return response
})

Vue.prototype.$url = function (url) {
  if (url.startsWith('http')) {
    // 网络图片
    return url
  } else {
    return URL + url
  }
}
